This invention relates generally to replication between interconnected servers and, more particularly, relates to a method to interface multiple-master domain servers with single-master servers in a hybrid network.
Use of distributed computer networks to implement databases results in more responsive databases, including local updating and management in multiple master systems. Redundancy built into a distributed implementation results in a more resilient and reliable database. A database may be thought of as constituting two essential properties, viz., a collection of data objects and a set of procedures/tools/methods for locating a particular one of the data objects. The procedures/tools/methods for locating a particular data item are included in a directory or directory service. There may be more than one directory in a database, and possibly a directory service for assistance in locating the proper directory. The directory service is a namespace that aids in resolution of an identifier to a corresponding object, or even attribute, using appropriate mappings that include simple directory tables. Commercial databases typically include storage for the objects and implementations of directory services for navigating the directories describing the organization of the stored data in the database.
In order to minimize the risk of service disruption and facilitate faster access, commercial databases are preferably maintained on several networked computers. These computers may update each other""s versions. These updating operations between computers are termed replications. If a particular computer crashes, another computer can takeover, preferably transparently. Thus, the users of the database may actually be only aware of a database-implementing network as a single entity rather than the individual components that make up the network.
A replication operation may result in the copying the entire state of a database to another database. However, this is often impractical and usually an incremental replication scheme (IRS) is implemented instead. In an IRS, changes since the last replication step, or portions thereof, are replicated to the other machine. Incremental replication often utilizes a change-log or journal to record changes as they take place. A replicating server examines the change-log of the server from which replication is being carried out to determine if all the changes since the last replication operation have been received. A convenient strategy is to use the index in the change-log to track changes to the change-log itself, and hence, to the server corresponding to the change-log.
Generally, there are two commonly used strategies for carrying out an IRS, and there are numerous variations within each strategy. The first strategy utilizes the single-master server (SMS) model in which one of the computers is designated as the primary server (PS). One or more backup servers (BS) replicate from the PS. Changes are first made to the PS and are then propagated to the backup servers via replication.
During replication between PS and BS, sometimes a lock is placed on both to ensure that the data does not change while replication is taking place. Furthermore, the replicating components are usually unavailable for the duration of the lock. The reasons for placing a lock include the desire to avoid identifying two machines as being synchronized when one or both may change during the process for synchronization itself, with the possibility of the next incremental replication operation treating non-replicated data as already having been replicated.
As a network increases in size, an increasing amount of the primary server""s time is spent replicating to several BSs in the network and this becomes a serious limitation on network performance. This bottleneck is not significantly eliminated eased by using servers that partition the database and, thus, copy only a limited fraction of the data during an update from the PS because the PS receives all updates to the network and participates in all replication operations.
The second strategy for IRS is based on networking multiple-master servers (MMS). In a multiple-master system, many servers replicate from each other, and can have changes made to their databases independent of each other. This permits updates to be made locally with considerable local administration while the changes eventually are reflected in the entire network. Thus, in the MMS system there is no need for designating a particular server as the primary server. Furthermore, not everything needs to be copied to every server in the network. And, a server may even be restricted to a defined subset of the data while routing requests requiring additional data to other servers in the network.
Although this strategy makes each server available for longer periods of time, it requires sophisticated synchronization to ensure that all of the servers are being updated in an orderly fashion. Potential problems include conflict resolution if the same record is updated in an inconsistent manner in different parts of the network and the speed of replication to ensure uniform access to usable data in the entire network.
While many older networks utilize the single-master server model, the newer implementations often take the multiple-master server approach, which allows local updating and management and greater access to the servers. Not surprisingly, there is a problem in interfacing the two implementations because most users are likely to upgrade, replace or add one, or a few, of the servers in a network rather than change the entire network from a SMS to a MMS based organization. Changing the entire network is expensive and may carry the additional risk of making some old data inaccessible due to imperfect upgrades and unforeseen conflicts. Thus, users and owners of databases require an efficient replication strategy that allows coexistence of SMS and MMS in the same system.
A difficulty presented by MMS units coexisting with SMS is that changes to the database can occur, in any order, on any of the MMSs in a network while the SMS units expect to see the same order of changes on all other units. Thus, there is a need to avoid creation of duplicate, and potentially confusing and/or conflicting, entries in the database as seen by SMS compatible units.
In addition, replication strategies that take the dynamics of changes to the database into account are needed for efficient replication. One approach has been to use replication as a background activity that is rescheduled in case of a conflict with user activities.
In view of the foregoing, in accordance with this invention, a method and system are provided for effecting efficient replication between a multiple-master server (MMS), emulating a primary server (PS) in a hybrid computer network that also includes single-master servers, and another MMS so that the second MMS server may efficiently takeover from the PS if needed. For convenience, the second MMS may also be thought of as a backup server (BS). The emulation of a PS by a MMS allows the single-master servers to interact with the multiple-master servers via the PS. Other MMS servers interact with the multiple-master PS to provide and obtain updates, and, in addition, in accordance with the invention, order their change-log to reflect the same order of changes as a change-log maintained by the PS. The resultant uniformity in change-logs allows the SMS units in the network to replicate from another MMS in the network in the event the MMS is promoted to emulate a PS.
A checkpoint-flag is set to signify a successful adoption of a PS""s change-log by another MMS, a BS. Subsequent updates to the BS from sources other than the PS are distinguished from the entries known to be in the same order as the entries in the change-log maintained by the PS, such as using a promotion-marker to identify changes following the setting of a checkpoint-flag. In the event the BS is promoted to emulate a role of the PS, other servers in the network can examine the promotion-marker to determine whether the corresponding entries are guaranteed to be in the order established by the previous PS. Thus, other servers in the network can replicate, from the promoted PS, the data necessary to achieve the same order as the new PS while not having to replicate data that is already ordered.
The process of setting the checkpoint-flag and replicating from a multiple-master PS can be carried out at low priority by the multiple-master backup servers in the hybrid network. Thus, replication may be performed as a background task, i.e., when the servers in the network are between user requests. A network realized according to the invention is more responsive, resistant to failure of component servers, and allows coexistence of both SMS and MMS units in the same network.